package com.flowumi.controladores.estudiante;

import com.flowumi.controladores.SessionFlowumiUtilBean;
import com.flowumi.entity.Actividades;
import com.flowumi.entity.Cursos;
import com.flowumi.entity.Cursosestudiantes;
import com.flowumi.facade.EstudianteFacade;
import com.flowumi.facade.ProfesorFacade;
import java.io.IOException;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.NavigationHandler;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.context.Flash;
import org.apache.log4j.Logger;

/**
 *
 * @author ideacentre
 */
@ManagedBean
@ViewScoped
public class EstudianteDetalleCursoBean implements Serializable {

    private static final Logger LOGGER =
            Logger.getLogger(EstudianteDetalleCursoBean.class);

    @EJB
    EstudianteFacade estudianteFacade;
    private Cursosestudiantes cursosestudiantes;
    
    
    
    @ManagedProperty("#{sessionFlowumiUtil}")
    private SessionFlowumiUtilBean sessionBean;

    /**
     * Creates a new instance of ProfesorDetalleCursoBean
     */
    public EstudianteDetalleCursoBean() {
    }

    @PostConstruct
    public void init() {
        if (sessionBean.getUsuario().getIdRol() == null || sessionBean.getUsuario().getIdRol().getIdRol() != 3) {
            try {
                sessionBean.Desconectar();
                FacesContext.getCurrentInstance().getExternalContext().redirect("InicioSession.xhtml");
            } catch (IOException ex) {
                LOGGER.error(ex);
            }
        }
        Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
        Long idCurso = (Long) flash.get("idCurso");
        if (idCurso != null) {
            cursosestudiantes = estudianteFacade.getCursoEstudiante(idCurso, sessionBean.getUsuario().getNombreUsuario());
        } else {
            FacesContext facesContext = FacesContext.getCurrentInstance();
            String redirect = "/faces/pages/EstudianteInicio.xhtml";
            NavigationHandler myNav = facesContext.getApplication().getNavigationHandler();
            myNav.handleNavigation(facesContext, null, redirect);
        }

    }

    public void setSessionBean(SessionFlowumiUtilBean sessionBean) {
        this.sessionBean = sessionBean;
    }

    public Cursosestudiantes getCursosestudiantes() {
        return cursosestudiantes;
    }

    public void setCursosestudiantes(Cursosestudiantes cursosestudiantes) {
        this.cursosestudiantes = cursosestudiantes;
    }
    
    public String VerActividad(int idActividad) {
        LOGGER.info("Navegando a la actividad con id: "+idActividad);
        Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
        flash.put("idCurso", cursosestudiantes.getCursos().getIdCurso());
        flash.put("idActividad", idActividad);
        return "/pages/EstudianteDetalleActividad.xhtml";
    }
}